package de.hdu.pms.ctrl;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import de.hdu.pms.dao.MitarbeiterDao;
import de.hdu.pms.model.Mitarbeiter;

@Controller
public class LoginController {
	private static Logger Log = Logger.getLogger(LoginController.class);
	private MitarbeiterDao mitarbeiterDao = null;

	public void setMitarbeiterDao(MitarbeiterDao mitarbeiterDao) {
		this.mitarbeiterDao = mitarbeiterDao;
	}

	/** Standard handler for the welcome view 
	 *  This handler based on the RequestToViewNameTranslator for finding a
	 *  logic view name fot the requested URL
	 * 	Here: "/index.html"
	 * 	@return ViewName "home.jps" select the view "/view/home.jsp"
	 * 	@author BBV
	 */
	
	@RequestMapping(value="/LoginCheck.html", method=RequestMethod.POST)
	public ModelAndView loginCheck(HttpServletRequest request,
			HttpServletResponse response, String mit_login, String mit_pw){
		ModelAndView mv = new ModelAndView();
		Log.info("loginCheck");
		HttpSession session = request.getSession();
		try{
			Mitarbeiter mitarbeiter = mitarbeiterDao.findByLogin(mit_login);
			if(mit_pw.equals(mitarbeiter.getMit_pw())){
				//redirekt zu Zeiterfassung + user in Session ablegen
				session.setAttribute("user", mitarbeiter.getId());
				session.setAttribute("admin", mitarbeiter.getMit_isadmin());
				session.setAttribute("logged_in", "true");
				session.setAttribute("name", "Sie sind eingelogt als: " + mitarbeiter.getMit_vorname() + " " + mitarbeiter.getMit_name());
				mv.addObject("message", "Sie haben sich erfolgreich eingelogt");
				mv.addObject("title", "Willkommen");
				mv.setViewName("wellcome");
				return mv;
			}else{
				mv.setViewName("home_error");
				return mv;
			}		
		}catch (Exception e){
				mv.setViewName("home_error");
				return mv;
		}
	}
}
